package com.cake.liulanxiangzhu.service;

import com.cake.liulanxiangzhu.pojo.entity.ContactInformation;
import com.cake.liulanxiangzhu.pojo.dto.ContactInformationDTO;
import com.cake.liulanxiangzhu.pojo.dto.ContactInformationUpdateDTO;
import com.cake.liulanxiangzhu.pojo.vo.ContactInformationVO;
import com.cake.liulanxiangzhu.web.JsonPage;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * (ContactInformation)表服务接口
 *
 * @author dinghao
 * @since 2023-02-21 21:45:42
 */
public interface ContactInformationService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    ContactInformationVO queryById(Integer id);

    /**
     * 查询默认收货地址
     *
     * @param request 主键
     * @return 实例对象
     */
    ContactInformationVO queryWxAddress(HttpServletRequest request);

    /**
     * 分页查询
     *
     * @param contactInformation 筛选条件
     * @return 查询结果
     */
    JsonPage<ContactInformationVO> queryByPage(ContactInformation contactInformation,Integer page , Integer pageSize);

    /**
     * 查询所有收货地址
     *
     * @param request 筛选条件
     * @return 查询结果
     */
    List<ContactInformationVO> queryWxAddressList(HttpServletRequest request );

    /**
     * 新增数据
     *
     * @param contactInformationDto 实例对象
     * @return 实例对象
     */
    void insert(HttpServletRequest request, ContactInformationDTO contactInformationDto);

    /**
     * 修改数据
     *
     * @param contactInformationUpdateDto 实例对象
     * @return 实例对象
     */
    void update(HttpServletRequest request, ContactInformationUpdateDTO contactInformationUpdateDto);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    void deleteById(Integer id);

}
